The driver provides additional features. They can be switched off/on and configurated by using the registry. The following additional features are being provided:
	- providing parameter data of the last set display mode
	- concealing display modes
	- reading user defined display modes

For every circuit Windows has passed to the driver, there is a subkey with the name "Device*" in the key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\graphic" of the registry. "*" is a placeholder for a number. The driver has checked, whether it can handle the circuit and return the appropriate answer to Windows. It's possible that there are also subkeys for circuits which are no graphics circuits or cannot be handled by the driver for a different reason.

Graphic circuits which can be handled by the driver can be recognized by the fact, that their corresponding subkey contains a value with the name "current mode.update registry values on mode change".

======================================================
Providing parameter data of the last set display mode:
======================================================
	image refreshing rate:
	----------------------
		The image refreshing rate cannot be read from the registry. It's not being stored in the graphic circuit either. It's rather an indirect result from other values:
			image refreshing rate = current mode.clock generator speed / (current mode.x.output total size * current mode.y.output total size)

		Example for the display mode "640x480@25 MHzx60 images per second":
			image refreshing rate = 25,175,000|d clock cycles per second / (800 clock cycles per line * 524 lines per image) = 60.05 images per second

	The following describes the relevant registry values:

	the value "current mode.update registry values on mode change":
	---------------------------------------------------------------
		With the help of this value information is passed towards the driver. The information contains whether the driver should create and overwrite the values which are described in this document every time when a display mode is set.

		There are the following valid values:
			- 00|h: The driver should not create the values nor overwrite them.
			- 01|h: If necessary then the driver should create the values. Afterwards the driver should overwrite them.

		size of the value:  1 byte
		type of the value:  raw data string (FLG_ADDREG_TYPE_BINARY) should be interpreted as a boolean value/truth statement (00|h = "false", 01|h = "true")
		unit of the value:  - no unit -
		type of the access: the driver only reads the value

	the value "current mode.clock generator speed":
	-----------------------------------------------
		With the help of this value the driver passes information towards the registry. The information contains the speed of the clock generator that has been used the last time a display mode has been set. The clock generator is being used to output the pixel data. It's not being used to drive the main processor (CPU). The main processor has it's own clock generator.

		If the graphics standard "video graphics array" ("VGA") is being used, then there are the following valid values:
			- 00 C0 11 EC|h: The clock generator is running at a speed of 12,587,500|d clock cycles per second.
			- 00 D8 14 68|h: The clock generator is running at a speed of 14,161,000|d clock cycles per second.
			- 01 80 23 D8|h: The clock generator is running at a speed of 25,175,000|d clock cycles per second.
			- 01 B0 28 D0|h: The clock generator is running at a speed of 28,322,000|d clock cycles per second.

		size of the value:  4 bytes
		type of the value:  raw data string (FLG_ADDREG_TYPE_BINARY) should be interpreted as an unsigned integer
		unit of the value:  clock cycles per second
		type of the access: the driver only writes to the value

	the value "current mode.graphic standard":
	------------------------------------------
		With the help of this value the driver passes information towards the registry. The information contains the identification number of the graphics standard that has been used the last time a display mode has been set.

		There are the following valid values:
			- 01|h: The graphics standard "video graphics array" ("VGA") by International Business Machines Corporation has been used.
			- 02|h: The graphics standard "generation 7 low cost" ("Gen7LC") by Intel Corporation has been used.

		size of the value:  1 byte
		type of the value:  raw data string (FLG_ADDREG_TYPE_BINARY) should be interpreted as an unsigned integer
		unit of the value:  - no unit -
		type of the access: the driver only writes to the value

	the value "current mode.x.input drawing area size":
	---------------------------------------------------
		With the help of this value the driver passes information towards the registry. The information contains the length of the active drawing area that has been used the last time a display mode has been set. The length refers to the horizontal axis and is given in clock cycles.

		If the graphics standard "video graphics array" ("VGA") is being used, then the following is true:
			- up to 16|d colors: 1 clock cycle = 1 pixel
			- 17|d colors or more: 2 clock cycles = 1 pixel

		size of the value:  4 bytes
		type of the value:  raw data string (FLG_ADDREG_TYPE_BINARY) should be interpreted as an unsigned integer
		unit of the value:  clock cycles
		type of the access: the driver only writes to the value

	the value "current mode.x.output unblackened front porch size":
	---------------------------------------------------------------
		With the help of this value the driver passes information towards the registry. The information contains the length of the unblackened front porch that has been used the last time a display mode has been set. The length refers to the horizontal axis and is given in clock cycles.

		The data transmission for a line looks like the following in all 3 color channels:
			content of the color channels: A|B|C|D|E|F|G|...
			             time progression: -------------->

			A = image data for the active drawing area of the current line
			B = border color (during the unblackened front porch)
			C = black (during the blackened front porch)
			D = black (during the synchronization pulse)
			E = black (during the blackened back porch)
			F = border color (during the unblackened back porch)
			G = image data for the active drawing area of the next line

		The driver makes no data transmission possible during the synchronization pulse.

		If the graphics standard "video graphics array" ("VGA") is being used, then the border color is being transmitted during the unblackened front porch. The driver always uses the color from the color palette which has the index 0|d as the border color. Under normal circumstances the color with the index 0|d is black.

		size of the value:  4 bytes
		type of the value:  raw data string (FLG_ADDREG_TYPE_BINARY) should be interpreted as an unsigned integer
		unit of the value:  clock cycles
		type of the access: the driver only writes to the value

	the value "current mode.x.output blackened front porch size":
	-------------------------------------------------------------
		With the help of this value the driver passes information towards the registry. The information contains the length of the blackened front porch that has been used the last time a display mode has been set. The length refers to the horizontal axis and is given in clock cycles.

		The signal wires of all 3 color channels are being pulled down to their corresponding ground during the blackened front porch. This means that the brightness is being reduced as good as possible.

		Because of the intentional short circuit it is not advised to use a bright border color. The brighter the border color is, the higher the short circuit current is. But this isn't necessarily true for all physical implementations.

		size of the value:  4 bytes
		type of the value:  raw data string (FLG_ADDREG_TYPE_BINARY) should be interpreted as an unsigned integer
		unit of the value:  clock cycles
		type of the access: the driver only writes to the value

	the value "current mode.x.output synchronization pulse size":
	-------------------------------------------------------------
		With the help of this value the driver passes information towards the registry. The information contains the length of the synchronization pulse that has been used the last time a display mode has been set. The length refers to the horizontal axis and is given in clock cycles.

		By transmitting the beginning of the synchronization pulse the display is being informed that the end of the line has been reached. The display is also instructed to deflect it's electron beam (if it has one) quickly one line downwards and back to the left limit of the screen.

		By transmitting the end of the synchronization pulse the display is being informed that the beginning of the next line has been reached. The display is also instructed to let it's electron beam (if it has one) slowly move rightwards, so that the pixel data of the next line can be projected.

		size of the value:  4 bytes
		type of the value:  raw data string (FLG_ADDREG_TYPE_BINARY) should be interpreted as an unsigned integer
		unit of the value:  clock cycles
		type of the access: the driver only writes to the value

	the value "current mode.x.output blackened back porch size":
	------------------------------------------------------------
		With the help of this value the driver passes information towards the registry. The information contains the length of the blackened back porch that has been used the last time a display mode has been set. The length refers to the horizontal axis and is given in clock cycles.

		The signal wires of all 3 color channels are being pulled down to their corresponding ground during the blackened back porch. This means that the brightness is being reduced as good as possible.

		size of the value:  4 bytes
		type of the value:  raw data string (FLG_ADDREG_TYPE_BINARY) should be interpreted as an unsigned integer
		unit of the value:  clock cycles
		type of the access: the driver only writes to the value

	the value "current mode.x.output unblackened back porch size":
	--------------------------------------------------------------
		With the help of this value the driver passes information towards the registry. The information contains the length of the unblackened back porch that has been used the last time a display mode has been set. The length refers to the horizontal axis and is given in clock cycles.

		If the graphics standard "video graphics array" ("VGA") is being used, then the border color is being transmitted during the unblackened back porch. The driver always uses the color from the color palette which has the index 0|d as the border color. Under normal circumstances the color with the index 0|d is black.

		size of the value:  4 bytes
		type of the value:  raw data string (FLG_ADDREG_TYPE_BINARY) should be interpreted as an unsigned integer
		unit of the value:  clock cycles
		type of the access: the driver only writes to the value

	the value "current mode.x.output total size":
	---------------------------------------------
		With the help of this value the driver passes information towards the registry. The information contains the total length of a line that has been used the last time a display mode has been set. The length refers to the horizontal axis and is given in clock cycles.

		The value results from a summation of the single values for the horizontal axis. But the driver does not return a calculated value. Instead the driver returns the value which it read from the graphic circuit.

		size of the value:  4 bytes
		type of the value:  raw data string (FLG_ADDREG_TYPE_BINARY) should be interpreted as an unsigned integer
		unit of the value:  clock cycles
		type of the access: the driver only writes to the value

	the value "current mode.y.input drawing area size":
	---------------------------------------------------
		With the help of this value the driver passes information towards the registry. The information contains the length of the active drawing area that has been used the last time a display mode has been set. The length refers to the vertical axis and is given in lines.

		size of the value:  4 bytes
		type of the value:  raw data string (FLG_ADDREG_TYPE_BINARY) should be interpreted as an unsigned integer
		unit of the value:  lines
		type of the access: the driver only writes to the value

	the value "current mode.y.output unblackened front porch size":
	---------------------------------------------------------------
		With the help of this value the driver passes information towards the registry. The information contains the length of the unblackened front porch that has been used the last time a display mode has been set. The length refers to the vertical axis and is given in lines.

		The data transmission for an image looks like the following in all 3 color channels:
			c
			o
			n
			t
			e
			n
			t

			o
			f

			t
			h
			et
			 i
			cm
			oe
			l
			op
			rr
			 o
			cg
			hr
			ae
			ns
			ns
			ei
			lo
			sn
			::

			A|
			-|
			B|
			-|
			C|
			-|
			D|
			-|
			E|
			-|
			F|
			-|
			G|
			-|
			.▼
			.
			.

			A = lines according to the drawing in the chapter 'the value "current mode.x.output unblackened front porch size"' for the current image
			B = border color (during the unblackened front porch)
			C = black (during the blackened front porch)
			D = black (during the synchronization pulse)
			E = black (during the blackened back porch)
			F = border color (during the unblackened back porch)
			G = lines according to the drawing in the chapter 'the value "current mode.x.output unblackened front porch size"' for the next image

		The driver makes no data transmission possible during the synchronization pulse.

		If the graphics standard "video graphics array" ("VGA") is being used, then the border color is being transmitted during the unblackened front porch. The driver always uses the color from the color palette which has the index 0|d as the border color. Under normal circumstances the color with the index 0|d is black.

		size of the value:  4 bytes
		type of the value:  raw data string (FLG_ADDREG_TYPE_BINARY) should be interpreted as an unsigned integer
		unit of the value:  lines
		type of the access: the driver only writes to the value

	the value "current mode.y.output blackened front porch size":
	-------------------------------------------------------------
		With the help of this value the driver passes information towards the registry. The information contains the length of the blackened front porch that has been used the last time a display mode has been set. The length refers to the vertical axis and is given in lines.

		The signal wires of all 3 color channels are being pulled down to their corresponding ground during the blackened front porch. This means that the brightness is being reduced as good as possible.

		Because of the intentional short circuit it is not advised to use a bright border color. The brighter the border color is, the higher the short circuit current is. But this isn't necessarily true for all physical implementations.

		size of the value:  4 bytes
		type of the value:  raw data string (FLG_ADDREG_TYPE_BINARY) should be interpreted as an unsigned integer
		unit of the value:  lines
		type of the access: the driver only writes to the value

	the value "current mode.y.output synchronization pulse size":
	-------------------------------------------------------------
		With the help of this value the driver passes information towards the registry. The information contains the length of the synchronization pulse that has been used the last time a display mode has been set. The length refers to the vertical axis and is given in lines.

		By transmitting the beginning of the synchronization pulse the display is being informed that the end of the image has been reached. The display is also instructed to deflect it's electron beam (if it has one) quickly from the bottom of the screen to the top limit of the screen.

		By transmitting the end of the synchronization pulse the display is being informed that the beginning of the next image has been reached.

		size of the value:  4 bytes
		type of the value:  raw data string (FLG_ADDREG_TYPE_BINARY) should be interpreted as an unsigned integer
		unit of the value:  lines
		type of the access: the driver only writes to the value

	the value "current mode.y.output blackened back porch size":
	------------------------------------------------------------
		With the help of this value the driver passes information towards the registry. The information contains the length of the blackened back porch that has been used the last time a display mode has been set. The length refers to the vertical axis and is given in lines.

		The signal wires of all 3 color channels are being pulled down to their corresponding ground during the blackened back porch. This means that the brightness is being reduced as good as possible.

		size of the value:  4 bytes
		type of the value:  raw data string (FLG_ADDREG_TYPE_BINARY) should be interpreted as an unsigned integer
		unit of the value:  lines
		type of the access: the driver only writes to the value

	the value "current mode.y.output unblackened back porch size":
	--------------------------------------------------------------
		With the help of this value the driver passes information towards the registry. The information contains the length of the unblackened back porch that has been used the last time a display mode has been set. The length refers to the vertical axis and is given in lines.

		If the graphics standard "video graphics array" ("VGA") is being used, then the border color is being transmitted during the unblackened front porch. The driver always uses the color from the color palette which has the index 0|d as the border color. Under normal circumstances the color with the index 0|d is black.

		size of the value:  4 bytes
		type of the value:  raw data string (FLG_ADDREG_TYPE_BINARY) should be interpreted as an unsigned integer
		unit of the value:  lines
		type of the access: the driver only writes to the value

	the value "current mode.y.output total size":
	---------------------------------------------
		With the help of this value the driver passes information towards the registry. The information contains the total length of an image that has been used the last time a display mode has been set. The length refers to the vertical axis and is given in lines.

		The value results from a summation of the single values for the vertical axis. But the driver does not return a calculated value. Instead the driver returns the value which it read from the graphic circuit.

		size of the value:  4 bytes
		type of the value:  raw data string (FLG_ADDREG_TYPE_BINARY) should be interpreted as an unsigned integer
		unit of the value:  lines
		type of the access: the driver only writes to the value

=========================
Concealing display modes:
=========================
	Concealing display modes can be helpful if there are several similar display modes. If there are more than 1 seemingly identical display modes then Windows will only expose the first of these display modes to the user to choose from.

	the value "conceal modes defined by the end user":
	--------------------------------------------------
		With the help of this value information is passed towards the driver. The information contains whether the driver should conceal user defined display modes every time when the driver is requested to return the number of his display modes or to list his display modes. Display modes which have been defined by the author of the driver while he was programming the driver are not affected. Display modes which have been defined by the end user are affected.

		This value indeed only affects the announcement of display modes. The graphic circuit can still be switched to a hidden/concealed display mode, if the command is sent to the driver.

		There are the following valid values:
			- 00|h: The driver should not conceal the display modes.
			- 01|h: The driver should conceal the display modes.

		size of the value:  1 byte
		type of the value:  raw data string (FLG_ADDREG_TYPE_BINARY) should be interpreted as a boolean value/truth statement (00|h = "false", 01|h = "true")
		unit of the value:  - no unit -
		type of the access: the driver only reads the value

	the value "conceal VGA modes defined by the driver author":
	-----------------------------------------------------------
		With the help of this value information is passed towards the driver. The information contains whether the driver should conceal it's VGA display modes every time when the driver is requested to return the number of his display modes or to list his display modes. Display modes which have been defined by the author of the driver while he was programming the driver are affected. Display modes which have been defined by the end user are not affected. Furthermore only those display modes are affected, for which the graphics standard "video graphics array" ("VGA") is being used.

		This value indeed only affects the announcement of display modes. The graphic circuit can still be switched to a hidden/concealed display mode, if the command is sent to the driver.

		There are the following valid values:
			- 00|h: The driver should not conceal the display modes.
			- 01|h: The driver should conceal the display modes.

		size of the value:  1 byte
		type of the value:  raw data string (FLG_ADDREG_TYPE_BINARY) should be interpreted as a boolean value/truth statement (00|h = "false", 01|h = "true")
		unit of the value:  - no unit -
		type of the access: the driver only reads the value

===================================
Reading user defined display modes:
===================================
	End users are able to define up to 16|h display modes of their own choice (within limits). Each of these display modes gets an identification number assigned. Such an identification number is a unique number between 0|h and F|h. To define a display mode a set of parameters needs to be written to the registry. A set of parameters is a collection of the following values. An asterisk ("*") in the value name is a placeholder. The placeholder stands of an identification number. This means an identification number ("0" to "F" (capital letter)) is written into the value name.

	All of the following values are necessary for a display mode. Otherwise the driver will not accept the display mode as valid. All values need to have the same identification number assigned to be part of the same display mode. Furthermore the values need to be valid according to the following descriptions. This means that the values need to be within their lower and upper limits. Also the step sizes need to be adhered to.

	When the driver announces an end user defined display mode towards the operating system, then he does not use the identification directly as the ModeIndex. The driver uses instead:
		ModeIndex = 1,092|d + identification
	ModeIndex "0|d" to "1,091|d" are being used for VGA display modes which have been defined by the author of the driver.

	Furthermore, if the graphics standard "video graphics array" ("VGA") is being used, then there are the following limitations:
		(x.output blackened back porch size + x.output unblackened back porch size) has to be >= 8 clock cycles. This means that the requirements given by the "video graphics array"-specifications need to be adhered to.
		(x.input drawing area size * y.input drawing area size) * length_in_bytes(pixel) has to be <= 256 KB. This means that the necessary image buffer needs to be <= to maximal available image memory.

	1 KB = 1,024 bytes

	At 2 colors the following is valid: length_in_bytes(pixel) = 0.125 bytes/(clock cycle * line)
	At 4 colors the following is valid: length_in_bytes(pixel) = 0.25 bytes/(clock cycle * line)
	From 16 to 256 colors the following is valid: length_in_bytes(pixel) = 0.5 bytes/(clock cycle * line)

	Furthermore the following is valid:
		x.output total size =
			  x.input drawing area size
			+ x.output unblackened front porch size
			+ x.output blackened front porch size
			+ x.output synchronization pulse size
			+ x.output blackened back porch size
			+ x.output unblackened back porch size

		y.output total size = round_down(
			clock generator speed / (image refreshing rate * x.output total size)
		)

	Independent of the used graphics standard there is the following limitation:
		y.output total size needs to be >= (
			  y.input drawing area size
			+ y.output unblackened front porch size
			+ y.output blackened front porch size
			+ y.output synchronization pulse size
			+ y.output blackened back porch size
			+ y.output unblackened back porch size
		). This means that the chosen clock generator needs to be fast enough to output the data.

	Furthermore, if the graphics standard "video graphics array" ("VGA") is being used, then the following is valid:
		If
			y.output total size <= 1,025
		then
			y.multiplicator = 1
		else
			y.multiplicator = 2

	the value "mode defined by the end user.*.clock generator speed":
	-----------------------------------------------------------------
		With the help of this value information is passed towards the driver. The information contains the speed of the clock generator which the driver should use for this display mode. The clock generator is being used to output the pixel data. It's not being used to drive the main processor (CPU). The main processor has it's own clock generator.

		If the graphics standard "video graphics array" ("VGA") is being used, then there are the following valid values:
			- 00 C0 11 EC|h: The clock generator should be running at a speed of 12,587,500|d clock cycles per second.
			- 00 D8 14 68|h: The clock generator should be running at a speed of 14,161,000|d clock cycles per second.
			- 01 80 23 D8|h: The clock generator should be running at a speed of 25,175,000|d clock cycles per second.
			- 01 B0 28 D0|h: The clock generator should be running at a speed of 28,322,000|d clock cycles per second.

		In addition, with all graphics standards there is the following valid value:
			- FF FF FF FF|h: The driver should choose the speed of the clock generator. When doing so, the driver chooses the slowest speed, that is still possible with the defined display mode. With this approach the transmission time for the image data is maximized and the transmission time of the porches is minimized.

		size of the value:  4 bytes
		type of the value:  raw data string (FLG_ADDREG_TYPE_BINARY) should be interpreted as an unsigned integer
		unit of the value:  clock cycles per second
		type of the access: the driver only reads the value

	the value "mode defined by the end user.*.graphic standard":
	------------------------------------------------------------
		With the help of this value information is passed towards the driver. The information contains the identification number of the graphics standard which the driver should use for this display mode.

		There are the following valid values:
			- 01|h: The graphics standard "video graphics array" ("VGA") by International Business Machines Corporation should be used.
			- 02|h: The graphics standard "generation 7 low cost" ("Gen7LC") by Intel Corporation should be used.

		size of the value:  1 byte
		type of the value:  raw data string (FLG_ADDREG_TYPE_BINARY) should be interpreted as an unsigned integer
		unit of the value:  - no unit -
		type of the access: the driver only reads the value

	the value "mode defined by the end user.*.image refreshing rate":
	-----------------------------------------------------------------
		With the help of this value information is passed towards the driver. The information contains the image refreshing rate which the driver should use for this display mode.

		There are the following valid values:
			minimal value:  1 image per second
			maximal value:  255 images per second
			step size:      1 image per second
			example values: 1; 2; 3; ...; 254; 255 images per second

		size of the value:  1 byte
		type of the value:  raw data string (FLG_ADDREG_TYPE_BINARY) should be interpreted as an unsigned integer
		unit of the value:  images per second
		type of the access: the driver only reads the value

	the value "mode defined by the end user.*.x.input drawing area size":
	---------------------------------------------------------------------
		With the help of this value information is passed towards the driver. The information contains the length of the active drawing area which the driver should use for this display mode. The length refers to the horizontal axis and is given in clock cycles.

		If the graphics standard "video graphics array" ("VGA") is being used, then the following is true:
			- up to 16|d colors: 1 clock cycle = 1 pixel
			- 17|d colors or more: 2 clock cycles = 1 pixel

		If the graphics standard "video graphics array" ("VGA") is being used, then there are the following valid values:
			minimal value:  1 character * character_size = 8 clock cycles
			maximal value:  256 characters * character_size = 2,048 clock cycles
			step size:      1 characters * character_size = 8 clock cycles
			example values: 8; 16; 24; ...; 2,040; 2,048 clock cycles

			character_size = 8 clock cycles per character

		size of the value:  4 bytes
		type of the value:  raw data string (FLG_ADDREG_TYPE_BINARY) should be interpreted as an unsigned integer
		unit of the value:  clock cycles
		type of the access: the driver only reads the value

	the value "mode defined by the end user.*.x.output unblackened front porch size":
	---------------------------------------------------------------------------------
		With the help of this value information is passed towards the driver. The information contains the length of the unblackened front porch which the driver should use for this display mode. The length refers to the horizontal axis and is given in clock cycles.

		The data transmission for a line looks like the following in all 3 color channels:
			content of the color channels: A|B|C|D|E|F|G|...
			             time progression: -------------->

			A = image data for the active drawing area of the current line
			B = border color (during the unblackened front porch)
			C = black (during the blackened front porch)
			D = black (during the synchronization pulse)
			E = black (during the blackened back porch)
			F = border color (during the unblackened back porch)
			G = image data for the active drawing area of the next line

		The driver makes no data transmission possible during the synchronization pulse.

		If the graphics standard "video graphics array" ("VGA") is being used, then the border color is being transmitted during the unblackened front porch. The driver always uses the color from the color palette which has the index 0|d as the border color. Under normal circumstances the color with the index 0|d is black.

		If the graphics standard "video graphics array" ("VGA") is being used, then there are the following valid values:
			minimal value:  0 characters * character_size = 0 clock cycles
			maximal value:  max(
			                      (255 characters * character_size)
			                    - x.input drawing area size,
			                    0 clock cycles
			                )

			                = max(
			                      2,040 clock cycles
			                    - x.input drawing area size,
			                    0 clock cycles
			                )
			step size:      1 character * character_size = 8 clock cycles
			example values: 0; 8; 16; 24; ...; 2,032; 2,040 clock cycles

			character_size = 8 clock cycles per character

		size of the value:  4 bytes
		type of the value:  raw data string (FLG_ADDREG_TYPE_BINARY) should be interpreted as an unsigned integer
		unit of the value:  clock cycles
		type of the access: the driver only reads the value

	the value "mode defined by the end user.*.x.output blackened front porch size":
	-------------------------------------------------------------------------------
		With the help of this value information is passed towards the driver. The information contains the length of the blackened front porch which the driver should use for this display mode. The length refers to the horizontal axis and is given in clock cycles.

		The signal wires of all 3 color channels are being pulled down to their corresponding ground during the blackened front porch. This means that the brightness is being reduced as good as possible.

		Because of the intentional short circuit it is not advised to use a bright border color. The brighter the border color is, the higher the short circuit current is. But this isn't necessarily true for all physical implementations.

		If the graphics standard "video graphics array" ("VGA") is being used, then there are the following valid values:
			minimal value:  0 characters * character_size = 0 clock cycles
			maximal value:    (63 characters * character_size)
			                - x.output synchronization pulse size
			                - x.output blackened back porch size

			                = 504 clock cycles
			                - x.output synchronization pulse size
			                - x.output blackened back porch size
			step size:      1 character * character_size = 8 clock cycles
			example values: 0; 8; 16; 24; ...; 496; 504 clock cycles

			character_size = 8 clock cycles per character

		size of the value:  4 bytes
		type of the value:  raw data string (FLG_ADDREG_TYPE_BINARY) should be interpreted as an unsigned integer
		unit of the value:  clock cycles
		type of the access: the driver only reads the value

	the value "mode defined by the end user.*.x.output synchronization pulse size":
	-------------------------------------------------------------------------------
		With the help of this value information is passed towards the driver. The information contains the length of the synchronization pulse which the driver should use for this display mode. The length refers to the horizontal axis and is given in clock cycles.

		By transmitting the beginning of the synchronization pulse the display is being informed that the end of the line has been reached. The display is also instructed to deflect it's electron beam (if it has one) quickly one line downwards and back to the left limit of the screen.

		By transmitting the end of the synchronization pulse the display is being informed that the beginning of the next line has been reached. The display is also instructed to let it's electron beam (if it has one) slowly move rightwards, so that the pixel data of the next line can be projected.

		If the graphics standard "video graphics array" ("VGA") is being used, then there are the following valid values:
			minimal value:  4 characters * character_size = 32 clock cycles
			maximal value:  31 characters * character_size = 248 clock cycles
			step size:      1 character * character_size = 8 clock cycles
			example values: 32; 40; 48; ...; 240; 248 clock cycles

			character_size = 8 clock cycles per character

		size of the value:  4 bytes
		type of the value:  raw data string (FLG_ADDREG_TYPE_BINARY) should be interpreted as an unsigned integer
		unit of the value:  clock cycles
		type of the access: the driver only reads the value

	the value "mode defined by the end user.*.x.output blackened back porch size":
	------------------------------------------------------------------------------
		With the help of this value information is passed towards the driver. The information contains the length of the blackened back porch which the driver should use for this display mode. The length refers to the horizontal axis and is given in clock cycles.

		The signal wires of all 3 color channels are being pulled down to their corresponding ground during the blackened back porch. This means that the brightness is being reduced as good as possible.

		If the graphics standard "video graphics array" ("VGA") is being used, then there are the following valid values:
			minimal value:  0 characters * character_size = 0 clock cycles
			maximal value:    (63 characters * character_size)
			                - x.output blackened front porch size
			                - x.output synchronization pulse size

			                = 504 clock cycles
			                - x.output blackened front porch size
			                - x.output synchronization pulse size
			step size:      1 characters * character_size = 8 clock cycles
			example values: 0; 8; 16; 24; ...; 496; 504 clock cycles

			character_size = 8 clock cycles per character

		size of the value:  4 bytes
		type of the value:  raw data string (FLG_ADDREG_TYPE_BINARY) should be interpreted as an unsigned integer
		unit of the value:  clock cycles
		type of the access: the driver only reads the value

	the value "mode defined by the end user.*.x.output unblackened back porch size":
	--------------------------------------------------------------------------------
		With the help of this value information is passed towards the driver. The information contains the length of the unblackened back porch which the driver should use for this display mode. The length refers to the horizontal axis and is given in clock cycles.

		If the graphics standard "video graphics array" ("VGA") is being used, then the border color is being transmitted during the unblackened back porch. The driver always uses the color from the color palette which has the index 0|d as the border color. Under normal circumstances the color with the index 0|d is black.

		If the graphics standard "video graphics array" ("VGA") is being used, then there are the following valid values:
			minimal value:  max(
			                      (25 characters * character_size)
			                    - x.input drawing area size
			                    - x.output unblackened front porch size
			                    - x.output blackened front porch size
			                    - x.output synchronization pulse size
			                    - x.output blackened back porch size,
			                    0 clock cycles
			                )

			                = max(
			                      200 clock cycles
			                    - x.input drawing area size
			                    - x.output unblackened front porch size
			                    - x.output blackened front porch size
			                    - x.output synchronization pulse size
			                    - x.output blackened back porch size,
			                    0 clock cycles
			                )
			maximal value:    (260 characters * character_size)
			                - x.input drawing area size
			                - x.output unblackened front porch size
			                - x.output blackened front porch size
			                - x.output synchronization pulse size
			                - x.output blackened back porch size

			                = 2,080 clock cycles
			                - x.input drawing area size
			                - x.output unblackened front porch size
			                - x.output blackened front porch size
			                - x.output synchronization pulse size
			                - x.output blackened back porch size
			step size:      1 character * character_size = 8 clock cycles
			example values: 0; 8; 16; 24; ...; 2,072; 2,080 clock cycles

			character_size = 8 clock cycles per character

		size of the value:  4 bytes
		type of the value:  raw data string (FLG_ADDREG_TYPE_BINARY) should be interpreted as an unsigned integer
		unit of the value:  clock cycles
		type of the access: the driver only reads the value

	the value "mode defined by the end user.*.y.input drawing area size":
	---------------------------------------------------------------------
		With the help of this value information is passed towards the driver. The information contains the length of the active drawing area which the driver should use for this display mode. The length refers to the vertical axis and is given in lines.

		If the graphics standard "video graphics array" ("VGA") is being used, then there are the following valid values:
			minimal value:  1 line * y.multiplicator
			maximal value:  1,024 lines * y.multiplicator
			step size:      1 line * y.multiplicator
			example values: 1; 2; 3; ...; 1,023; 1,024; 1,026; ...; 2,046; 2,048 lines

		size of the value:  4 bytes
		type of the value:  raw data string (FLG_ADDREG_TYPE_BINARY) should be interpreted as an unsigned integer
		unit of the value:  lines
		type of the access: the driver only reads the value

	the value "mode defined by the end user.*.y.output unblackened front porch size":
	---------------------------------------------------------------------------------
		With the help of this value information is passed towards the driver. The information contains the length of the unblackened front porch which the driver should use for this display mode. The length refers to the vertical axis and is given in lines.

		The data transmission for an image looks like the following in all 3 color channels:
			c
			o
			n
			t
			e
			n
			t

			o
			f

			t
			h
			et
			 i
			cm
			oe
			l
			op
			rr
			 o
			cg
			hr
			ae
			ns
			ns
			ei
			lo
			sn
			::

			A|
			-|
			B|
			-|
			C|
			-|
			D|
			-|
			E|
			-|
			F|
			-|
			G|
			-|
			.▼
			.
			.

			A = lines according to the drawing in the chapter 'the value "current mode.x.output unblackened front porch size"' for the current image
			B = border color (during the unblackened front porch)
			C = black (during the blackened front porch)
			D = black (during the synchronization pulse)
			E = black (during the blackened back porch)
			F = border color (during the unblackened back porch)
			G = lines according to the drawing in the chapter 'the value "current mode.x.output unblackened front porch size"' for the next image

		The driver makes no data transmission possible during the synchronization pulse.

		If the graphics standard "video graphics array" ("VGA") is being used, then the border color is being transmitted during the unblackened front porch. The driver always uses the color from the color palette which has the index 0|d as the border color. Under normal circumstances the color with the index 0|d is black.

		If the graphics standard "video graphics array" ("VGA") is being used, then there are the following valid values:
			minimal value:  0 lines
			maximal value:  max(
			                      (1,024 lines * y.multiplicator)
			                    - y.input drawing area size,
			                    0 lines
			                )
			step size:      1 line * y.multiplicator
			example values: 0; 1; 2; 3; ...; 1,023; 1,024; 1,026; ...; 2,046; 2,048 lines

		size of the value:  4 bytes
		type of the value:  raw data string (FLG_ADDREG_TYPE_BINARY) should be interpreted as an unsigned integer
		unit of the value:  lines
		type of the access: the driver only reads the value

	the value "mode defined by the end user.*.y.output blackened front porch size":
	-------------------------------------------------------------------------------
		With the help of this value information is passed towards the driver. The information contains the length of the blackened front porch which the driver should use for this display mode. The length refers to the vertical axis and is given in lines.

		The signal wires of all 3 color channels are being pulled down to their corresponding ground during the blackened front porch. This means that the brightness is being reduced as good as possible.

		Because of the intentional short circuit it is not advised to use a bright border color. The brighter the border color is, the higher the short circuit current is. But this isn't necessarily true for all physical implementations.

		If the graphics standard "video graphics array" ("VGA") is being used, then there are the following valid values:
			minimal value:  0 lines
			maximal value:  max(
			                      (256 lines * y.multiplicator)
			                    - y.output synchronization pulse size
			                    - y.output blackened back porch size,
			                    0 lines
			                )
			step size:      1 line * y.multiplicator
			example values: 0; 1; 2; 3; ...; 255; 256; 258; ...; 510; 512 lines

		size of the value:  4 bytes
		type of the value:  raw data string (FLG_ADDREG_TYPE_BINARY) should be interpreted as an unsigned integer
		unit of the value:  lines
		type of the access: the driver only reads the value

	the value "mode defined by the end user.*.y.output synchronization pulse size":
	-------------------------------------------------------------------------------
		With the help of this value information is passed towards the driver. The information contains the length of the synchronization pulse which the driver should use for this display mode. The length refers to the vertical axis and is given in lines.

		By transmitting the beginning of the synchronization pulse the display is being informed that the end of the image has been reached. The display is also instructed to deflect it's electron beam (if it has one) quickly from the bottom of the screen to the top limit of the screen.

		By transmitting the end of the synchronization pulse the display is being informed that the beginning of the next image has been reached.

		If the graphics standard "video graphics array" ("VGA") is being used, then there are the following valid values:
			minimal value:  0 lines
			maximal value:  15 lines * y.multiplicator
			step size:      1 line * y.multiplicator
			example values: 0; 1; 2; 3; ...; 14; 15; 16; 18; ...; 28; 30 lines

		size of the value:  4 bytes
		type of the value:  raw data string (FLG_ADDREG_TYPE_BINARY) should be interpreted as an unsigned integer
		unit of the value:  lines
		type of the access: the driver only reads the value

	the value "mode defined by the end user.*.y.output blackened back porch size":
	------------------------------------------------------------------------------
		With the help of this value information is passed towards the driver. The information contains the length of the blackened back porch which the driver should use for this display mode. The length refers to the vertical axis and is given in lines.

		The signal wires of all 3 color channels are being pulled down to their corresponding ground during the blackened back porch. This means that the brightness is being reduced as good as possible.

		If the graphics standard "video graphics array" ("VGA") is being used, then there are the following valid values:
			minimal value:  0 lines
			maximal value:  max(
			                      (256 lines * y.multiplicator)
			                    - y.output blackened front porch size
			                    - y.output synchronization pulse size,
			                    0 lines
			                )
			step size:      1 line * y.multiplicator
			example values: 0; 1; 2; 3; ...; 255; 256; 258; ...; 510; 512 lines

		size of the value:  4 bytes
		type of the value:  raw data string (FLG_ADDREG_TYPE_BINARY) should be interpreted as an unsigned integer
		unit of the value:  lines
		type of the access: the driver only reads the value

	the value "mode defined by the end user.*.y.output unblackened back porch minimal size":
	----------------------------------------------------------------------------------------
		With the help of this value information is passed towards the driver. The information contains the minimal length of the unblackened back porch which the driver should use for this display mode. The length refers to the vertical axis and is given in lines.

		In the most cases the actual length, which the driver uses, is longer than the given minimal length. This is because the driver uses the unblackened back porch of the vertical axis to waste excess clock cycles by doing basicly nothing. The necessity to waste clock cycles comes from the fact that the chosen clock generator delivers a fixed amount of clock cycles per second and with that per image. This means the amount is also independent from whether the amount is needed for outputting the image. This is why
			- at low resolutions or low image refreshing rates many clock cycles and
			- at high resolutions or high image refreshing rates few clock cycles
		need to be wasted.

		If the graphics standard "video graphics array" ("VGA") is being used, then the border color is being transmitted during the unblackened front porch. The driver always uses the color from the color palette which has the index 0|d as the border color. Under normal circumstances the color with the index 0|d is black.

		If the graphics standard "video graphics array" ("VGA") is being used, then there are the following valid values:
			minimal value:  max(
			                      (2 lines * y.multiplicator)
			                    - y.input drawing area size
			                    - y.output unblackened front porch size
			                    - y.output blackened front porch size
			                    - y.output synchronization pulse size
			                    - y.output blackened back porch size,
			                    0 lines
			                )
			maximal value:    (1,025 lines * y.multiplicator)
			                - y.input drawing area size
			                - y.output unblackened front porch size
			                - y.output blackened front porch size
			                - y.output synchronization pulse size
			                - y.output blackened back porch size
			step size:      1 line * y.multiplicator
			example values: 0; 1; 2; 3; ...; 1,024; 1,025; 1,026; 1,028; ...; 2,048; 2,050 lines

		size of the value:  4 bytes
		type of the value:  raw data string (FLG_ADDREG_TYPE_BINARY) should be interpreted as an unsigned integer
		unit of the value:  lines
		type of the access: the driver only reads the value